#include<iostream>
#include<cstdio>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>



const std::string myenv="HELLO=AAAAAAAAAAAAAAAAAAAAAAA";

int main()
{
    pid_t id = fork();
    if (id == 0)
    {
        //子进程
        char* const env[] = {
            (char*)"HELLO=bite"
        };
        execvpe("./other", nullptr, env);
        exit(1);
    }

    //父进程
    pid_t rid = waitpid(id, nullptr, 0);
    if (rid > 0)
    {
        printf("等待子进程成功!\n");
    }
    return 0;
}












//const std::string myenv="HELLO=AAAAAAAAAAAAAAAAAAAAAAA";
//
//int main()
//{
//    putenv((char*)myenv.c_str());
//    pid_t id = fork();
//    if (id == 0)
//    {
//        //子进程
//        execl("./other", "other", nullptr);
//        exit(1);
//    }
//
//    //父进程
//    pid_t rid = waitpid(id, nullptr, 0);
//    if (rid > 0)
//    {
//        printf("等待子进程成功!\n");
//    }
//    return 0;
//}












//int main()
//{
//    printf("我是myexec, pid: %d\n", getpid());
//    int n = execl("/bin/lsssss", "sss", "-l", "-a", nullptr); 
//    //最后必须以nullptr结尾
//    printf("execl return val: %d\n", n);
//
//    return 0;
//}
